﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

#include "GcmpModelInterface.h"
#include "IObject.h"
#include "RuntimeId.h"

namespace gcmp
{
    /// \brief 弱提示类详细信息项的接口类
    /// 
    /// 提供了获取RuntimeID和ElementID的接口
    class INotificationDetailItem : public IObject
    {
        DEFINE_CAST_DERIVED(gcmp::INotificationDetailItem, gcmp::IObject);
    public:

        /// \brief 根据给定的ID数据生成详细信息项
        /// \param documentRuntimeId          文档在软件运行期间的唯一标识
        /// \param elementId             图元Id，在文档中唯一
        /// \return 返回生成的详细信息项
        GCMP_MODEL_INTERFACE_EXPORT static OwnerPtr<INotificationDetailItem> Create(const RuntimeId& documentRuntimeId, const ElementId& elementId);
        

        /// \brief 获取软件运行期间的文档Id（目前尚未被调用，将来可用于追溯弱提示的文档）
        /// \return 返回软件运行期间的文档Id
        virtual const RuntimeId& GetDocumentId() const = 0;

        /// \brief 获取图元在文档中的Id（目前尚未被调用，将来可用于追溯产生弱提示的element）
        /// \return 返回图元在文档中的Id
        virtual const ElementId& GetElementId() const = 0;
    };
}



